package com.gaofans.nrpc.example.dict;



import com.gaofans.nrpc.codegen.annontion.ProxyGen;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.List;
import java.util.Map;
@ProxyGen
public interface DictService {

    /**
     * 添加字典
     */
    Mono<Void> addDict(String dictCode, String dictName, String dictTips, String dictValues) throws Exception;

    /**
     * 编辑字典
     */
    Mono<Void> editDict(String dictId, String dictCode, String dictName, String dictTips, String dicts) throws IllegalStateException;

    /**
     * 删除字典
     */
    Mono<Void> delteDict(String dictId);

    /**
     * 根据编码获取词典列表
     */
    Mono<List<Dict>> selectByCode(String code);

    /**
     * 根据父类编码获取词典列表
     */
    Flux<Dict> selectByParentCode(String code);

    /**
     * 查询字典列表
     */
    Flux<Map<String, Object>> list(String conditiion);

    /**
     * 根据父级id查询字典
     * @param dictId
     * @return
     */
    Mono<List<Dict>> selecyByPid(String dictId);

    /**
     * 分页查询
     * @param webPage
     * @param condition
     * @return
     */
    Mono<WebPage<Dict>> findPage(WebPage<Dict> webPage, String condition);
}
